package 力扣._1963_使字符串平衡的最小交换次数;

import java.util.*;

class Solution {
    public int minSwaps(String s) {
        // 使得字符串平衡，感觉就是让括号匹配
        // c = 当前位置 [数量 - ]数量
        // 对于平衡串，每一处位置都是c>=0
        // 当遇到c<0时，从贪心角度来讲，需要将当前的]与最右边的[交换，这样能使得后面一段的c尽肯能都大
        char[] chars = s.toCharArray();
        int c=0;
        int ans=0;
        int j = chars.length-1;
        for (int i = 0; i < chars.length ; i++) {
            if(chars[i]=='[')
                c++;
            else if(c>0)
                c--;
            else {//当前处
                // 招最右边的[交换
                while (chars[j]==']') j--;
                chars[j] = ']';
                ans+=2;
                c++;
            }
        }
        return ans;

    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.minSwaps("][]["));
        HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
    }
}